return {
    {
        "kyazdani42/nvim-tree.lua",
        keys = { "<space>fl" },
        config = function()
            require("nvim-tree").setup({
                update_cwd = true,
                reload_on_bufenter = true,
                update_focused_file = {
                    enable = true,
                    update_cwd = true,
                    ignore_list = {},
                },
                git = {
                    enable = true,
                    ignore = true,
                },
            })
            vim.keymap.set("n", "<space>fl", "<cmd>NvimTreeToggle<cr>", { desc = "Toggle file explorer" })

            -- exit vim after closing last opened buff
            -- vim.cmd("autocmd BufEnter * ++nested if winnr('$') == 1 && bufname() == 'NvimTree_' . tabpagenr() | quit | endif")
            vim.api.nvim_create_autocmd("BufEnter", {
                group = vim.api.nvim_create_augroup("NvimTreeClose", { clear = true }),
                pattern = "NvimTree_*",
                callback = function()
                    local layout = vim.api.nvim_call_function("winlayout", {})
                    if
                        layout[1] == "leaf"
                        and vim.api.nvim_buf_get_option(vim.api.nvim_win_get_buf(layout[2]), "filetype") == "NvimTree"
                        and layout[3] == nil
                    then
                        vim.cmd("confirm quit")
                    end
                end,
            })
        end,
    },
    -- {
    --     "simonmclean/triptych.nvim",
    --     event = "VeryLazy",
    --     dependencies = {
    --         "nvim-lua/plenary.nvim", -- required
    --         "nvim-tree/nvim-web-devicons", -- optional
    --     },

    --     config = function()
    --         require("triptych").setup({
    --             mappings = {
    --                 quit = { "q", "<ESC>" },
    --             },
    --             extension_mappings = {
    --                 ["<C-x>"] = {
    --                     mode = "n",
    --                     fn = function(target)
    --                         vim.cmd.Triptych()
    --                         vim.schedule(function()
    --                             vim.cmd.split(target.path)
    --                         end)
    --                     end,
    --                 },
    --                 ["<C-v>"] = {
    --                     mode = "n",
    --                     fn = function(target)
    --                         vim.cmd.Triptych()
    --                         vim.schedule(function()
    --                             vim.cmd.vsplit(target.path)
    --                         end)
    --                     end,
    --                 },
    --             },
    --         })
    --         -- vim.keymap.set("n", "<space>ft", ":Triptych<CR>", { silent = true, desc = "browser directory" })
    --         vim.keymap.set("n", "<space>fn", ":Triptych<CR>", { silent = true, desc = "browser directory" })
    --     end,
    -- },
    ---@type LazySpec
    {
        "mikavilpas/yazi.nvim",
        event = "VeryLazy",
        dependencies = { "folke/snacks.nvim", lazy = true },
        keys = {
            -- 👇 in this section, choose your own keymappings!
            {
                "<space>fn",
                mode = { "n", "v" },
                "<cmd>Yazi<cr>",
                desc = "Open yazi at the current file",
            },
            {
                -- Open in the current working directory
                "<leader>cw",
                "<cmd>Yazi cwd<cr>",
                desc = "Open the file manager in nvim's working directory",
            },
            {
                "<c-up>",
                "<cmd>Yazi toggle<cr>",
                desc = "Resume the last yazi session",
            },
        },
        ---@type YaziConfig | {}
        opts = {
            -- if you want to open yazi instead of netrw, see below for more info
            open_for_directories = false,
            keymaps = {
                show_help = "<f1>",
            },
        },
        -- 👇 if you use `open_for_directories=true`, this is recommended
        init = function()
            -- More details: https://github.com/mikavilpas/yazi.nvim/issues/802
            -- vim.g.loaded_netrw = 1
            vim.g.loaded_netrwPlugin = 1
        end,
    },
}
